package com.guapi.entity;

import lombok.Data;

/**
 * 分页信息
 */
@Data
public class Page {
    //当前页码
    private int current = 1;
    //页面默认显示上限
    private int limit = 10;
    //数据总数
    private int rows;
    //查询路径
    private String path;

    /**
     * 设置当前所处页面
     * @param current
     */
    public void setCurrent(int current) {
        if (current >= 1) {
            this.current = current;
        }
    }

    /**
     * 分页限制条数，数据非法则使用默认
     * @param limit
     */
    public void setLimit(int limit) {
        if (limit >= 1 && limit <= 100) {
            this.limit = limit;
        }
    }

    /**
     * 设置数据总数
     * @param rows
     */
    public void setRows(int rows) {
        if (rows >= 0) {
            this.rows = rows;
        }
    }

    /**
     * 获取当前页起始
     * @return
     */
    public int getOffset(){
        return (current-1)*limit;
    }
    /**
     * 获取总页数
     * @return
     */
    public int getTotal(){
        if (rows%limit==0){
            return rows/limit;
        }else {
            return rows/limit+1;
        }
    }

    /**
     * 获取起始页码
     * @return
     */
    public int getFrom(){
        int from =current-2;
        return Math.max(from, 1);
    }

    /**
     * 获取结束页码
     * @return
     */
    public int getTo(){
        int to=current+2;
        int total=getTotal();
        return Math.min(to, total);
    }
}
